620c561461edddd2341653c704968d873844551e,scr/src/main/java/org/apache/felix/scr/impl/config/ImmediateComponentHolder.java,ImmediateComponentHolder,disposeComponents,#number#,372

Before Change


        final ImmediateComponentManager singleComponent = m_singleComponent;
        m_singleComponent = null;

        final ImmediateComponentManager[] cms = getComponentManagers( true );
        if ( cms == null )
        {
            singleComponent.dispose( reason );
        }

After Change


    public void disposeComponents( final int reason )
    {
        ImmediateComponentManager[] cms;
        synchronized ( m_components )
        {
            // FELIX-1733: get a copy of the single component and clear
            // the field to prevent recreation in disposed(ICM)
            final ImmediateComponentManager singleComponent = m_singleComponent;
            m_singleComponent = null;

            cms = getComponentManagers( true );
            if ( cms == null )
            {
                cms = new ImmediateComponentManager[] { singleComponent };
            }
        }
        for ( ImmediateComponentManager cm : cms )